﻿Imports BUS
Imports DTO
Public Class frmTiepNhanDauSach : Inherits DevComponents.DotNetBar.Office2007Form


    Private m_Nhanvien As CNhanVienDTO
    Public Property NhanVien() As CNhanVienDTO
        Get
            Return m_Nhanvien
        End Get
        Set(ByVal value As CNhanVienDTO)
            m_Nhanvien = value
        End Set
    End Property

    Private Function KiemTra() As Boolean
        If txtTenSach.Text = "" Then
            Return False
        End If
        Dim n As Integer
        If Not Integer.TryParse(txtNamXuatBan.Text, n) Then
            MessageBox.Show("Năm xuất bảng không hợp lệ")
            Return False
        End If


        If Not Integer.TryParse(txtSoLuongSach.Text, n) Then
            MessageBox.Show("Năm xuất bảng không hợp lệ")
            Return False
        End If

        If txtNhaXuatBan.Text = "" Then
            MessageBox.Show("Tên nhà xuất bản không hợp lệ")
            Return False
        End If

        If txtTenSach.Text = "" Then
            MessageBox.Show("Tên sách không hợp lệ")
            Return False
        End If

        If txtTenTacGia.Text = "" Then
            MessageBox.Show("Tên tác giả không hợp lệ")
            Return False
        End If


            If Not Integer.TryParse(txtSoLuongSach.Text, n) Then
                MessageBox.Show("Số lượng sách không hợp lệ không hợp lệ")
                Return False
            End If

            If n < 1 Then
                MessageBox.Show("Số lượng sách không hợp lệ không hợp lệ")
                Return False
            End If

            If Not Integer.TryParse(txtTienPhatMatSach.Text, n) Then
                MessageBox.Show("Tiền phạt mất sách không hợp lệ")
                Return False
            End If

            If n < 1 Then
                MessageBox.Show("Tiền phạt mất sách không hợp lệ")
                Return False
            End If

            If Not Integer.TryParse(txtTriGia.Text, n) Then
                MessageBox.Show("Trị giá không hợp lệ")
                Return False
            End If

            If n < 1 Then
                MessageBox.Show("Trị giá không hợp lệ")
                Return False
            End If

        Return True

    End Function

    Private Sub btnThem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThem.Click
        If Not KiemTra() Then
            Return
        End If
        Dim ds As New CDauSachDTO()
        ds.Ten = txtTenSach.Text
        ds.MaNhanVien = txtNhanVienTiepNhan.Text
        Dim tl As CTheLoaiSachDTO = cboTheLoai.SelectedItem
        ds.MaTheLoai = tl.Ma
        Dim tt As CTinhTrangSachDTO = cboTinhTrang.SelectedItem
        ds.MaTinhTrang = tt.Ma
        ds.NamXuatBan = txtNamXuatBan.Text
        ds.NgayNhap = dtpNgayNhap.Value
        ds.NhaXuatBan = txtNamXuatBan.Text
        ds.TacGia = txtTenTacGia.Text
        ds.TienPhatMatSach = txtTienPhatMatSach.Text
        ds.TongSoSach = txtSoLuongSach.Text
        ds.TriGia = txtTriGia.Text
        Dim n As Boolean = New CDauSachBUS().ThemDauSach(ds)
        If n Then
            MessageBox.Show("Thêm thành công")
            Reload()
        Else
            MessageBox.Show("Thêm thất bại")
        End If

    End Sub

    Public Sub Reset()
        txtMaSach.Text = ""
        txtTenSach.Text = ""
        txtNhaXuatBan.Text = ""
        dtpNgayNhap.Value = DateTime.Now
        txtTenTacGia.Text = ""
        cboTheLoai.SelectedIndex = 1
        cboTinhTrang.SelectedIndex = 0
        txtTriGia.Text = ""
        txtNamXuatBan.Text = ""
        txtSoLuongSach.Text = ""
        txtTienPhatMatSach.Text = ""

    End Sub
    Private m_stt As Integer = 0
    Dim dausach As List(Of CDauSachDTO)

    Private Sub Reload()
        cboTheLoai.SelectedIndex = 1
        cboTinhTrang.SelectedIndex = 0
        dtpNgayNhap.Value = DateTime.Now
        dausach = New CDauSachBUS().LayDanhSachDauSach()
        dgvChiTiet.Rows.Clear()
        For Each ds As CDauSachDTO In dausach
            m_stt += 1
            dgvChiTiet.Rows.Add(m_stt, ds.Ma, ds.Ten, ds.TongSoSach, New CNhanVienBUS().LayTenNhanVienKhiBietMa(ds.MaNhanVien))
        Next
    End Sub
    Private Sub frmTiepNhanDauSach_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim theloai As List(Of CTheLoaiSachDTO) = New CTheLoaiSachBUS().LayDanhSachTheLoaiSach()
        For Each tl As CTheLoaiSachDTO In theloai
            cboTheLoai.Items.Add(tl)
        Next
        cboTheLoai.DisplayMember = "Ten"
        cboTheLoai.ValueMember = "Ma"

        txtNhanVienTiepNhan.Text = m_Nhanvien.Ma
        txtTenNhanVien.Text = m_Nhanvien.HoTen
        Dim tinhtrang As List(Of CTinhTrangSachDTO) = New CTinhTrangSachBUS().LayDanhSachTinhTrangSach()
        For Each tt As CTinhTrangSachDTO In tinhtrang
            cboTinhTrang.Items.Add(tt)
        Next
        cboTinhTrang.DisplayMember = "Ten"
        cboTinhTrang.ValueMember = "Ma"
        Reload()

    End Sub

    Private Sub btnThoat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThoat.Click
        Reset()
    End Sub

    Private Sub dgvChiTiet_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvChiTiet.CellClick
        If e.RowIndex > dgvChiTiet.Rows.Count Or e.RowIndex = -1 Then
            Return
        End If
        Dim ds As CDauSachDTO = dausach.Item(e.RowIndex)
        txtMaSach.Text = ds.Ma
        txtNamXuatBan.Text = ds.NamXuatBan
        txtNhanVienTiepNhan.Text = ds.MaNhanVien
        txtNhaXuatBan.Text = ds.NhaXuatBan
        txtSoLuongSach.Text = ds.TongSoSach
        txtTenNhanVien.Text = dgvChiTiet.Rows(e.RowIndex).Cells("clTenNhanvien").Value
        txtTenSach.Text = ds.Ten
        txtTenTacGia.Text = ds.TacGia
        txtTienPhatMatSach.Text = ds.TienPhatMatSach
        txtTriGia.Text = ds.TriGia
        dtpNgayNhap.Value = ds.NgayNhap

        Dim i As Integer = 0
        For Each tl As CTheLoaiSachDTO In cboTheLoai.Items
            If ds.MaTheLoai = tl.Ma Then
                Exit For
            End If
            i += 1
        Next

        cboTheLoai.SelectedIndex = i
        i = 0
        For Each tt As CTinhTrangSachDTO In cboTinhTrang.Items
            If ds.MaTinhTrang = tt.Ma Then
                Exit For
            End If
            i += 1
        Next

        cboTinhTrang.SelectedIndex = i
    End Sub

   
    Private Sub btnCapNhat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCapNhat.Click
        If Not KiemTra() Then
            Return
        End If
        Dim ds As New CDauSachDTO()
        ds.Ten = txtTenSach.Text
        ds.Ma = txtMaSach.Text
        ds.MaNhanVien = txtNhanVienTiepNhan.Text
        Dim tl As CTheLoaiSachDTO = cboTheLoai.SelectedItem
        ds.MaTheLoai = tl.Ma
        Dim tt As CTinhTrangSachDTO = cboTinhTrang.SelectedItem
        ds.MaTinhTrang = tt.Ma
        ds.NamXuatBan = txtNamXuatBan.Text
        ds.NgayNhap = dtpNgayNhap.Value
        ds.NhaXuatBan = txtNamXuatBan.Text
        ds.TacGia = txtTenTacGia.Text
        ds.TienPhatMatSach = txtTienPhatMatSach.Text
        ds.TongSoSach = txtSoLuongSach.Text
        ds.TriGia = txtTriGia.Text
        ds.Ma = txtMaSach.Text
        Dim n As Boolean = New CDauSachBUS().CapNhatDauSach(ds)
        MessageBox.Show("Cập nhật thành công")
        Reload()
    End Sub
End Class